Skip to content

OpenClaw 图片与文档处理完全指南

OpenClaw 支持分析图片和 PDF 文档,结合视觉模型和文档解析能力,可以处理各种非结构化数据。本文详细介绍 imagepdf 工具的使用方法和实战案例。

一、图片处理基础

工具概述

image 工具使用视觉模型分析图片,支持:

  • 单张图片分析
  • 多张图片批量分析(最多 20 张)
  • 各种格式:jpg, png, gif, webp
  • 本地文件和网络 URL

基本用法

javascript
// 分析单张图片
image(
  image="/path/to/image.jpg",
  prompt="描述这张图片的内容"
)

// 分析多张图片
image(
  images=["/path/img1.jpg", "/path/img2.jpg", "/path/img3.jpg"],
  prompt="对比这三张图片的异同",
  maxImages=10
)

// 分析网络图片
image(
  image="https://example.com/chart.png",
  prompt="解释这个图表展示的数据趋势"
)

二、实战案例 1:数据图表分析

场景

分析销售报表中的图表,提取关键数据并生成洞察。

完整流程

javascript
// 1. 分析销售趋势图
trend_analysis = image(
  image="./reports/sales-trend-2026.png",
  prompt=`
请详细分析这张销售趋势图:

1. 识别图表类型(折线图/柱状图/饼图等)
2. 提取坐标轴信息和单位
3. 描述整体趋势(上升/下降/波动)
4. 指出关键数据点(最高点、最低点、转折点)
5. 分析可能的原因和洞察

请以结构化格式输出:
- 图表类型:
- 时间范围:
- 数据指标:
- 关键趋势:
- 洞察建议:
  `
)

// 2. 分析区域分布图
region_analysis = image(
  image="./reports/region-map-2026.png",
  prompt="分析各区域销售表现,找出表现最好和最差的区域"
)

// 3. 生成综合报告
report = `
📊 销售数据可视化分析

【趋势分析】
${trend_analysis}

【区域分析】
${region_analysis}

【综合建议】
基于以上分析,建议...
`

write(path="./sales-analysis-report.md", content=report)

输出示例

📊 销售数据可视化分析

【趋势分析】
- 图表类型:折线图
- 时间范围:2026 年 1 月 -3 月
- 数据指标:月度销售额(万元)
- 关键趋势:
  * 1 月:1200 万(年初低点)
  * 2 月:1850 万(春节促销高峰)
  * 3 月:1650 万(回落至正常水平)
- 洞察建议:
  * 促销活动效果显著,建议保持
  * 需关注活动后销售回落问题

【区域分析】
- 表现最佳:华东区(占比 35%)
- 表现最差:西北区(占比 8%)
- 建议加强西北区市场投入

三、实战案例 2:OCR 文字识别

场景

从截图、扫描件中提取文字内容。

完整流程

javascript
// 1. 识别文档截图中的文字
ocr_result = image(
  image="./documents/contract-scan.jpg",
  prompt=`
请识别这张图片中的所有文字内容:

要求:
1. 保持原文的段落结构
2. 准确识别数字、日期等关键信息
3. 不确定的字符用 [?] 标注
4. 忽略页眉页脚和页码

请直接输出识别结果,不需要额外说明。
  `
)

// 2. 提取关键信息
info_extraction = image(
  image="./documents/contract-scan.jpg",
  prompt=`
从这份合同中提取以下关键信息:

- 合同编号:
- 甲方名称:
- 乙方名称:
- 合同金额:
- 签署日期:
- 有效期:
- 关键条款摘要:

以 JSON 格式输出。
  `
)

// 3. 保存结果
write(
  path="./contract-extracted-info.json",
  content=info_extraction
)

注意事项

  1. 图片质量:确保图片清晰,分辨率不低于 300 DPI
  2. 文字方向:倾斜的文字识别率会降低
  3. 复杂背景:背景复杂时识别准确率下降
  4. 手写文字:手写体识别效果有限

四、实战案例 3:界面截图审查

场景

审查 UI 设计稿或产品截图,提供改进建议。

完整流程

javascript
// 1. 整体评估
overall_review = image(
  image="./designs/homepage-v2.png",
  prompt=`
请从用户体验角度评估这个网页设计:

1. 视觉层次是否清晰?
2. 色彩搭配是否和谐?
3. 信息布局是否合理?
4. 是否有明显的可用性问题?
5. 与主流设计风格的一致性如何?

给出整体评分(1-10 分)和主要优缺点。
  `
)

// 2. 细节检查
detail_check = image(
  image="./designs/homepage-v2.png",
  prompt=`
仔细检查这个设计的细节:

1. 文字是否清晰可读?
2. 按钮和链接是否明显?
3. 表单输入是否友好?
4. 图标是否表意清晰?
5. 是否有拼写或语法错误?

列出所有发现的问题。
  `
)

// 3. 无障碍检查
accessibility_check = image(
  image="./designs/homepage-v2.png",
  prompt=`
从无障碍设计角度检查:

1. 色彩对比度是否足够?
2. 文字大小是否合适?
3. 是否考虑色盲用户?
4. 交互元素是否足够大?

指出需要改进的地方。
  `
)

五、PDF 文档处理

工具概述

pdf 工具支持:

  • 单个或多个 PDF 分析(最多 10 个)
  • 指定页码范围
  • 文本提取和分析
  • 图表和图像识别

基本用法

javascript
// 分析单个 PDF
pdf(
  pdf="/path/to/document.pdf",
  prompt="总结这份文档的主要内容",
  pages="1-10"  // 可选:指定页码范围
)

// 分析多个 PDF
pdf(
  pdfs=["doc1.pdf", "doc2.pdf", "doc3.pdf"],
  prompt="对比这三份文档的异同"
)

// 提取特定页面
pdf(
  pdf="/path/to/report.pdf",
  prompt="提取第 5 页的表格数据",
  pages="5"
)

六、实战案例 4:技术文档总结

场景

快速理解长篇技术文档的核心内容。

完整流程

javascript
// 1. 整体概览
overview = pdf(
  pdf="./docs/api-reference-v3.pdf",
  prompt=`
请提供这份 API 文档的整体概览:

1. 文档结构和章节划分
2. 核心功能模块有哪些
3. 主要的数据类型和接口
4. 使用场景和最佳实践

输出结构化的目录摘要。
  `,
  pages="1-20"  // 先看目录和简介
)

// 2. 深入理解关键章节
auth_details = pdf(
  pdf="./docs/api-reference-v3.pdf",
  prompt=`
详细解释认证授权部分:

1. 支持的认证方式
2. 每种方式的实现步骤
3. 安全注意事项
4. 常见错误和解决方案

提供代码示例。
  `,
  pages="25-40"
)

// 3. 生成学习笔记
study_notes = `
# API 文档学习笔记

## 文档概览
${overview}

## 认证授权详解
${auth_details}

## 待实践内容
- [ ] 完成 OAuth2 配置
- [ ] 测试 API 限流
- [ ] 实现错误处理
`

write(path="./api-study-notes.md", content=study_notes)

七、实战案例 5:多文档对比分析

场景

对比多个版本文档,找出变化和差异。

完整流程

javascript
// 对比两个版本的白皮书
comparison = pdf(
  pdfs=[
    "./whitepaper/whitepaper-v1.pdf",
    "./whitepaper/whitepaper-v2.pdf"
  ],
  prompt=`
请对比这两个版本的白皮书:

1. 整体结构有什么变化?
2. 新增或删除了哪些章节?
3. 核心观点有什么更新?
4. 数据和案例有什么变化?
5. 结论和建议有什么调整?

以对比表格形式输出主要差异。
  `
)

// 生成变更日志
changelog = pdf(
  pdfs=["./whitepaper/whitepaper-v1.pdf", "./whitepaper/whitepaper-v2.pdf"],
  prompt=`
基于两个版本的对比,生成变更日志:

格式:
## [v2.0] - 2026-03-19

### 新增
- ...

### 变更
- ...

### 删除
- ...

### 修复
- ...
  `
)

write(path="./whitepaper-changelog.md", content=changelog)

八、高级技巧

1. 组合使用图片和 PDF

javascript
// 从 PDF 中提取图表,然后详细分析
pdf_result = pdf(
  pdf="./report.pdf",
  prompt="列出文档中所有图表的标题和页码"
)

// 根据页码截图(需要额外工具)
// 然后分析具体图表
chart_analysis = image(
  image="./extracted/chart-page-15.png",
  prompt="详细分析这个图表..."
)

2. 批量处理

javascript
// 批量分析多个产品截图
const products = ["product-a.png", "product-b.png", "product-c.png"]

for (const product of products) {
  const analysis = image(
    image=`./products/${product}`,
    prompt="分析这个产品的外观设计特点"
  )
  write(
    path=`./analysis/${product.replace('.png', '-analysis.md')}`,
    content=analysis
  )
}

3. 图像生成后处理

javascript
// 如果使用 DALL-E 等生成图片
// 可以再用 image 工具分析生成的结果
generated_image = "path/to/generated-image.png"

quality_check = image(
  image=generated_image,
  prompt=`
评估这张生成图片的质量:

1. 是否符合提示词要求
2. 图像清晰度和细节
3. 色彩和构图
4. 是否有明显的生成瑕疵

给出改进建议。
  `
)

九、最佳实践

1. 提示词编写技巧

javascript
// ❌ 模糊的提示
image(image="chart.png", prompt="这是什么?")

// ✅ 具体的提示
image(
  image="chart.png",
  prompt=`
请分析这张图表:
1. 图表类型和坐标轴含义
2. 数据趋势和关键数值
3. 异常点和可能原因
4. 业务洞察和建议
  `
)

2. 文件管理

javascript
// 组织好输入输出文件
// 输入
./input/
  ├── images/
  │   ├── screenshots/
  │   └── diagrams/
  └── documents/
      ├── pdfs/
      └── scans/

// 输出
./output/
  ├── analysis/
  ├── extractions/
  └── reports/

3. 错误处理

javascript
try {
  result = image(image="./file.png", prompt="分析...")
} catch (e) {
  // 检查文件是否存在
  // 检查文件格式是否支持
  // 检查文件大小是否超限
  console.log(`图片分析失败:${e.message}`)
}

十、常见问题

Q: 支持哪些图片格式?

A: jpg, png, gif, webp。推荐用 png 获得最佳质量。

Q: 图片大小有限制吗?

A: 默认限制 20MB,可通过 maxBytesMb 参数调整。

Q: PDF 分析准确吗?

A: 取决于 PDF 类型:

  • 文本型 PDF:准确率高
  • 扫描版 PDF:依赖 OCR,可能有误差
  • 加密 PDF:需要先解密

Q: 可以分析视频吗?

A: 不直接支持,但可以:

  1. 提取视频帧为图片
  2. 分析关键帧
  3. 整合分析结果

十一、总结

图片和文档处理能力让 AI 助理可以:

能力应用场景
图表分析数据报告、业务洞察
OCR 识别文档数字化、信息提取
界面审查UI/UX 评估、质量检查
PDF 分析文档总结、对比研究

掌握这些工具,你的 AI 助理可以处理更丰富的信息源。


相关资源:

Released under the MIT License.